home *** CD-ROM | disk | FTP | other *** search
- Path: xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i200: netkeys 2.0 - control two amigas via dnet, Part02/02
- Message-ID: <13067@xanth.cs.odu.edu>
- Date: 7 Jul 90 15:14:30 GMT
- Sender: tadguy@cs.odu.edu
- Reply-To: sas.UUCP!walker%sas@rti.rti.org (Doug Walker)
- Lines: 788
- Approved: tadguy@cs.odu.edu (Tad Guy)
- X-Mail-Submissions-To: Amiga@cs.odu.edu
- X-Post-Discussions-To: comp.sys.amiga
-
- Submitted-by: sas.UUCP!walker%sas@rti.rti.org (Doug Walker)
- Posting-number: Volume 90, Issue 200
- Archive-name: comm/dnet/netkeys-2.0/part02
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 2)."
- # Contents: netkeys.c netkeys.uu
- # Wrapped by tadguy@xanth on Sat Jul 7 11:13:12 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'netkeys.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'netkeys.c'\"
- else
- echo shar: Extracting \"'netkeys.c'\" \(15146 characters\)
- sed "s/^X//" >'netkeys.c' <<'END_OF_FILE'
- X/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- X/* |_o_o|\\ Copyright (c) 1990 The Software Distillery. All Rights Reserved.*/
- X/* |. o.| || This program may not be distributed without the permission of */
- X/* | . | || the authors. */
- X/* | o | || */
- X/* | . |// Written by Doug Walker */
- X/* ====== BBS:(919)-471-6436 VOICE:(919)-467-4764 */
- X/* BIX: djwalker USENET: ...!mcnc!rti!sas!walker */
- X/* 405 B3 Gooseneck Dr, Cary, NC 27513, USA */
- X/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- X/*
- X * Based on POPCLI III, written by John Toebes
- X * Uses Matt Dillon's DNET
- X */
- X
- X#include "netkeys.h"
- X#include <intuition/intuitionbase.h>
- X#include <proto/intuition.h>
- X
- X#ifdef DEBUG
- X#undef DEBUG
- X#endif
- X
- X#define DEBUG 0
- X
- X#if DEBUG
- X#define BUG(x) if(_Backstdout) MSG(_Backstdout, x);
- X#else
- X#define BUG(x) ;
- X#endif
- X
- X/* Declarations for CBACK */
- Xextern BPTR _Backstdout; /* standard output when run in background */
- Xlong _BackGroundIO = 1; /* Flag to tell it we want to do I/O */
- Xlong _stack = 4000; /* Amount of stack space our task needs */
- Xchar *_procname = "NetKeys II"; /* The name of the task to create */
- Xlong _priority = 20; /* The priority to run us at */
- X
- Xint InitDevice(GLOBAL_DATA *, int);
- Xint TermDevice(GLOBAL_DATA *);
- X
- Xstruct InputEvent * __regargs myhandler(struct InputEvent *ev, GLOBAL_DATA *gptr)
- X{
- X struct InputEvent *ep, *laste;
- X struct NETKEYMSG *nkm;
- X int msgtype;
- X
- X if(gptr->state < EM_DOIT) return(ev); /* In the process of quitting */
- X
- X /* run down the list of events to see if they pressed the magic button */
- X for (ep = ev, laste = NULL; ep != NULL; ep = ep->ie_NextEvent)
- X {
- X msgtype = NKM_NONE;
- X if(gptr->state == EM_RELURK)
- X {
- X gptr->state = EM_LURK;
- X msgtype = NKM_ACK;
- X }
- X else if(ep->ie_Class == IECLASS_RAWKEY || ep->ie_Class == IECLASS_RAWMOUSE)
- X {
- X if(
- X (
- X ep->ie_Class == IECLASS_RAWKEY &&
- X ep->ie_Code == gptr->dokey &&
- X (ep->ie_Qualifier & IEQUALIFIER_LCOMMAND)
- X )
- X ||
- X (
- X gptr->state == EM_LURK &&
- X ep->ie_Class == IECLASS_RAWMOUSE &&
- X (ep->ie_Qualifier & IEQUALIFIER_RELATIVEMOUSE) &&
- X (ep->ie_Code == IECODE_NOBUTTON) &&
- X ((gptr->ibase->MouseX == 0 && ep->ie_X < 0 &&
- X (gptr->exit & IECODE_NKLEFT)) ||
- X (gptr->ibase->MouseX == gptr->swidth && ep->ie_X > 0 &&
- X (gptr->exit & IECODE_NKRIGHT))
- X )
- X )
- X )
- X {
- X /* Remove the event from the chain */
- X if (laste == NULL)
- X ev = ep->ie_NextEvent;
- X else
- X laste->ie_NextEvent = ep->ie_NextEvent;
- X
- X /* Telling us to toggle... */
- X if(gptr->state == EM_DOIT)
- X {
- X gptr->state = EM_LURK;
- X msgtype = NKM_WEBEDONE;
- X }
- X else
- X {
- X gptr->state = EM_DOIT;
- X msgtype = NKM_HEREWEGO;
- X }
- X }
- X else if(gptr->state != EM_LURK)
- X {
- X /* Remove the event from the chain */
- X if (laste == NULL)
- X ev = ep->ie_NextEvent;
- X else
- X laste->ie_NextEvent = ep->ie_NextEvent;
- X
- X msgtype = NKM_IEVENT;
- X }
- X }
- X else
- X laste = ep;
- X
- X if(msgtype != NKM_NONE)
- X {
- X if(!(nkm=(struct NETKEYMSG *)GetMsg(gptr->rtnp)))
- X {
- X if(gptr->nmsgs <= MAXMSGS)
- X nkm=AllocMem(NKMSZ, MEMF_CLEAR|MEMF_PUBLIC);
- X }
- X if(nkm)
- X {
- X nkm->msgtype = msgtype;
- X if(msgtype == NKM_IEVENT || msgtype == NKM_HEREWEGO) nkm->ie = *ep;
- X PutMsg((struct MsgPort *)gptr->nkmp, (struct Message *)nkm);
- X }
- X }
- X }
- X
- X /* pass on the pointer to the event */
- X return(ev);
- X}
- X
- X#if DEBUG > 1
- XBPTR _Backstdout = NULL;
- Xchar *cmd;
- X#define DCLMAIN int main(int argc, char *argv[])
- X#else
- X#define DCLMAIN int _main(char *cmd)
- X#endif
- X
- XDCLMAIN
- X{
- X struct MsgPort *inputDevPort = NULL;
- X struct MsgPort *oldport;
- X struct IOStdReq *inputRequestBlock = NULL;
- X struct Interrupt handlerStuff;
- X GLOBAL_DATA global;
- X struct NETKEYMSG *msg, *oldmsg, *tmpmsg;
- X int quit = 0;
- X UWORD smooth = 2;
- X struct Screen wbdat;
- X struct IntuitionBase *IntuitionBase;
- X struct GfxBase *GfxBase = NULL;
- X UWORD *NoSprData = NULL;
- X ULONG IBaseLock;
- X
- X#if DEBUG > 1
- X /* Not really linked with cback */
- X cmd = argv[1];
- X _Backstdout = Output();
- X#endif
- X
- X MSG(_Backstdout, BANNER);
- X
- X memset(&global, 0, sizeof(global));
- X global.buddy = FindTask(0L);
- X global.dokey = DEFDOKEY;
- X global.state = EM_LURK;
- X
- X if(!(global.rtnp = CreatePort(0,0)))
- X {
- X MSG(_Backstdout, "Can't CreatePort\n");
- X goto abort;
- X }
- X
- X oldport = FindPort(NKMPNAME);
- X
- X if(cmd)
- X {
- X long tmpl = DEFDOKEY;
- X while(*cmd)
- X {
- X while(*cmd != ' ' && *cmd != '\0') cmd++;
- X while(*cmd == ' ') cmd++;
- X
- X switch(cmd[0])
- X {
- X case '\0':
- X case '\n':
- X break;
- X
- X case '0':
- X if(cmd[1] == 'x')
- X {
- X stch_l(cmd+2, &tmpl);
- X global.dokey = tmpl;
- X }
- X break;
- X
- X case 'F': case 'f':
- X smooth = 0;
- X break;
- X
- X case 'L': case 'l':
- X global.exit = IECODE_NKLEFT;
- X break;
- X
- X case 'Q': case 'q':
- X quit = 1;
- X break;
- X
- X case 'R': case 'r':
- X global.exit = IECODE_NKRIGHT;
- X break;
- X
- X case 'S': case 's':
- X smooth = 1;
- X break;
- X
- X case 'W': case 'w':
- X global.exit = IECODE_NKLEFT|IECODE_NKRIGHT;
- X break;
- X
- X default:
- X MSG(_Backstdout,
- X "USAGE: NetKeys [0xkey] [F|S] [L|R|W] [Q]\n");
- X MSG(_Backstdout, " [0xkey] - RAW key code for hotkey\n");
- X MSG(_Backstdout, " [F|S] - FAST or SMOOTH mode\n");
- X MSG(_Backstdout,
- X " [L|R|W] - Mouse cursor exits LEFT, RIGHT or WRAPs\n");
- X MSG(_Backstdout, " [Quit] - Terminate NetKeys\n");
- X goto abort;
- X }
- X }
- X }
- X
- X if(!(oldmsg = AllocMem(NKMSZ, MEMF_CLEAR|MEMF_PUBLIC)))
- X {
- X MSG(_Backstdout, "No memory\n");
- X goto abort;
- X }
- X if(quit)
- X {
- X if(!oldport)
- X {
- X MSG(_Backstdout, "Netkeys not installed\n");
- X goto abort;
- X }
- X else
- X {
- X oldmsg->msgtype = NKM_QUIT;
- X oldmsg->m.mn_Node.ln_Type = NT_MESSAGE;
- X oldmsg->m.mn_ReplyPort = global.rtnp;
- X
- X PutMsg(oldport, (struct Message *)oldmsg);
- X while(!GetMsg(global.rtnp))
- X WaitPort(global.rtnp);
- X GetMsg(global.rtnp);
- X
- X MSG(_Backstdout, "NetKeys removed\n");
- X goto abort;
- X }
- X }
- X
- X if(oldport)
- X {
- X /* Modify the parms for the existing guy */
- X oldmsg->msgtype = NKM_CONTROL;
- X oldmsg->m.mn_Node.ln_Type = NT_MESSAGE;
- X oldmsg->m.mn_ReplyPort = global.rtnp;
- X oldmsg->ie.ie_Class = global.dokey;
- X oldmsg->ie.ie_SubClass = global.exit;
- X oldmsg->ie.ie_Code = smooth;
- X PutMsg(oldport, (struct Message *)oldmsg);
- X
- X while(!GetMsg(global.rtnp))
- X WaitPort(global.rtnp);
- X GetMsg(global.rtnp);
- X
- X MSG(_Backstdout, "Parameters modified on existing NetKeys command\n");
- X goto abort;
- X }
- X FreeMem(oldmsg, NKMSZ);
- X oldmsg = NULL;
- X
- X MSG(_Backstdout, INSTR);
- X
- X if(global.exit == 0) global.exit = IECODE_NKLEFT|IECODE_NKRIGHT;
- X
- X if(smooth == 2) smooth = 0;
- X
- X if (
- X ((global.nkmp = CreatePort(NKMPNAME, 0)) == NULL) ||
- X ((inputDevPort = CreatePort(0,0)) == NULL) ||
- X InitDevice(&global, NKM_HANDLER) ||
- X ((inputRequestBlock =
- X CreateIOReq(inputDevPort, sizeof(struct IOStdReq))) == NULL) ||
- X
- X !(global.ibase = (struct IntuitionBase *)
- X OpenLibrary("intuition.library", 0)) ||
- X
- X !(GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 0)) ||
- X
- X !(NoSprData = AllocMem(12, MEMF_PUBLIC|MEMF_CHIP|MEMF_CLEAR)) ||
- X
- X OpenDevice("input.device",0,(struct IORequest *)inputRequestBlock,0))
- X {
- X MSG(_Backstdout, "Can't initialize - check DNET connection\n");
- X goto abort;
- X }
- X
- X MSG(_Backstdout, "NetKeys installed\n");
- X
- X#if DEBUG < 1
- X if(_Backstdout) Close(_Backstdout);
- X _Backstdout = 0;
- X#endif
- X
- X IntuitionBase = global.ibase;
- X NoSprData[0] = 0xFE00;
- X NoSprData[1] = 0xFF00;
- X
- X /* If we have an appropriate version of intuition, ask for info */
- X /* about the workbench screen */
- X if(IntuitionBase->LibNode.lib_Version < 33
- X || !(GetScreenData((char *)&wbdat, sizeof(struct Screen),
- X WBENCHSCREEN, NULL)))
- X {
- X /* Either we're running on an old version of the system, or the */
- X /* GetScreenData call failed for some reason. In either case, */
- X /* simply assume a 640x200 screen and be done with it. */
- X global.swidth = 639;
- X }
- X else
- X {
- X /* Use the wb width, and STDSCREENHEIGHT. */
- X global.swidth = wbdat.Width-1;
- X }
- X
- X handlerStuff.is_Data = (APTR)&global;
- X handlerStuff.is_Code = (VOID (*)()) myhandler;
- X handlerStuff.is_Node.ln_Pri = 52;
- X
- X inputRequestBlock->io_Command = IND_ADDHANDLER;
- X inputRequestBlock->io_Data = (APTR)&handlerStuff;
- X
- X DoIO((struct IORequest *)inputRequestBlock);
- X
- X while(global.state >= EM_DOIT &&
- X !(SIGBREAKF_CTRL_C & Wait((1<<global.nkmp->mp_SigBit) | SIGBREAKF_CTRL_C)))
- X {
- X while(msg=(struct NETKEYMSG *)GetMsg(global.nkmp))
- X {
- X if(msg->msgtype == NKM_QUIT) /* Msg from another invocation */
- X {
- X ReplyMsg((struct Message *)msg);
- X goto abort;
- X }
- X else if(msg->msgtype == NKM_CONTROL) /* Msg from another invocation */
- X {
- X global.dokey = msg->ie.ie_Class;
- X if(msg->ie.ie_SubClass)
- X global.exit = msg->ie.ie_SubClass;
- X if(msg->ie.ie_Code != 2)
- X smooth = msg->ie.ie_Code;
- X ReplyMsg((struct Message *)msg);
- X continue;
- X }
- X else if(msg->msgtype == NKM_HEREWEGO) /* From handler - start sending */
- X {
- X if(msg->ie.ie_Class == IECLASS_RAWMOUSE)
- X msg->ie.ie_Code = global.exit;
- X else
- X msg->ie.ie_Code = global.exit|IECODE_NKHOTKEY;
- X
- X msg->ie.ie_Class = IECLASS_NKCONTROL;
- X
- X msg->ie.ie_Y = IntuitionBase->MouseY;
- X msg->ie.ie_X = IntuitionBase->MouseX;
- X
- X mshow(GfxBase, NoSprData, 0); /* Blank mouse */
- X }
- X else if(msg->msgtype == NKM_WEBEDONE) /* From handler - quit sending*/
- X {
- X mshow(GfxBase, NoSprData, 1); /* Unblank mouse */
- X msg->ie.ie_Class = IECLASS_NKCONTROL;
- X msg->ie.ie_Code = IECODE_NKHOTQUIT|global.exit;
- X msg->ie.ie_Y = IntuitionBase->MouseY;
- X msg->ie.ie_X = IntuitionBase->MouseX;
- X }
- X
- X tmpmsg = NULL;
- X if( !smooth &&
- X msg->ie.ie_Class == IECLASS_RAWMOUSE &&
- X msg->ie.ie_Code == IECODE_NOBUTTON)
- X {
- X while((tmpmsg = (struct NETKEYMSG *)GetMsg(global.nkmp)) &&
- X tmpmsg->msgtype == NKM_IEVENT &&
- X tmpmsg->ie.ie_Class == IECLASS_RAWMOUSE &&
- X tmpmsg->ie.ie_Code == IECODE_NOBUTTON &&
- X (tmpmsg->ie.ie_Qualifier & IEQUALIFIER_RELATIVEMOUSE))
- X {
- X tmpmsg->ie.ie_X += msg->ie.ie_X;
- X tmpmsg->ie.ie_Y += msg->ie.ie_Y;
- X PutMsg(global.rtnp, (struct Message *)msg);
- X msg = tmpmsg;
- X tmpmsg = NULL;
- X }
- X }
- Xputit:
- X if(DWrite(global.chan, (char *)&msg->ie, IESZ) != IESZ)
- X break;
- X
- X PutMsg(global.rtnp, (struct Message *)msg);
- X
- X if(DNRead(global.chan, (char *)&msg->ie, IESZ) == IESZ)
- X {
- X while(DNRead(global.chan, (char *)&msg->ie, IESZ) == IESZ);
- X
- X IBaseLock = LockIBase(0);
- X IntuitionBase->MouseY = msg->ie.ie_Y;
- X IntuitionBase->MouseX = (msg->ie.ie_X == 0 ? global.swidth-1 : 1);
- X UnlockIBase(IBaseLock);
- X
- X /* Set global state to RELURK and wait for handler to acknowledge */
- X global.state = EM_RELURK;
- X do
- X {
- X if(!(msg=(struct NETKEYMSG *)GetMsg(global.nkmp)))
- X WaitPort(global.nkmp);
- X }
- X while(!msg || msg->msgtype != NKM_ACK);
- X mshow(GfxBase, NoSprData, 1);
- X }
- X else if(tmpmsg)
- X {
- X msg = tmpmsg;
- X tmpmsg = NULL;
- X goto putit;
- X }
- X }
- X }
- X
- Xabort:
- X if(global.ibase) CloseLibrary((struct Library *)global.ibase);
- X
- X if(GfxBase)
- X {
- X if(NoSprData)
- X {
- X mshow(GfxBase, NoSprData, 1);
- X FreeMem(NoSprData, 12);
- X }
- X CloseLibrary((struct Library *)GfxBase);
- X }
- X
- X TermDevice(&global);
- X
- X if (inputRequestBlock != NULL)
- X {
- X if (inputRequestBlock->io_Device != NULL)
- X {
- X inputRequestBlock->io_Command = IND_REMHANDLER;
- X inputRequestBlock->io_Data = (APTR)&handlerStuff;
- X DoIO((struct IORequest *)inputRequestBlock);
- X
- X CloseDevice((struct IORequest *)inputRequestBlock);
- X }
- X DeleteIOReq(inputRequestBlock);
- X }
- X
- X if (inputDevPort != NULL) DeletePort(inputDevPort);
- X
- X if(global.nkmp)
- X {
- X while(msg=(struct NETKEYMSG *)GetMsg(global.nkmp)) FreeMem(msg, NKMSZ);
- X DeletePort(global.nkmp);
- X }
- X
- X if(global.rtnp)
- X {
- X while(msg=(struct NETKEYMSG *)GetMsg(global.rtnp)) FreeMem(msg, NKMSZ);
- X DeletePort(global.rtnp);
- X }
- X
- X if(_Backstdout) Close(_Backstdout);
- X
- X return(0);
- X}
- X
- Xint InitDevice(GLOBAL_DATA *global, int which)
- X{
- X
- X if(global->active) return(1);
- X global->active = 1;
- X
- X if(!(global->chan=(struct DChannel *)
- X DOpen(NULL, (uword)(PORT_NETKEYS), 127, 127)))
- X return(1);
- X
- X return(0);
- X}
- X
- Xint TermDevice(GLOBAL_DATA *global)
- X{
- X if(!global->active) return(1);
- X
- X global->active = 0;
- X
- X if(global->chan) DClose(global->chan);
- X
- X global->chan = NULL;
- X
- X return(0);
- X}
- X
- Xvoid MemCleanup(void);
- Xvoid MemCleanup(){}
- END_OF_FILE
- if test 15146 -ne `wc -c <'netkeys.c'`; then
- echo shar: \"'netkeys.c'\" unpacked with wrong size!
- fi
- # end of 'netkeys.c'
- fi
- if test -f 'netkeys.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'netkeys.uu'\"
- else
- echo shar: Extracting \"'netkeys.uu'\" \(13190 characters\)
- sed "s/^X//" >'netkeys.uu' <<'END_OF_FILE'
- Xbegin 666 netkeys
- XM```#\P`````````#``````````(```#*````:P``!]<```/I````RDCG?OY+Z
- XM[P`T)$@D`$GY`````"QX``0I3@!:*4\`8D*L`%Y'^0```:!R`"`\`````V`"H
- XM)L%1R/_\)FX!%'``(CP``#``3J[^SBEK`)@`5DJK`*QG``%080`"G"(L`%8L4
- XM;`&H3J[_H"E``%8@:P"LT<C1R")H`!#3R=/)(`)R`!(9*`DF`=*!T(%:@.6(L
- XMT*P`%"E``!1![```+'@`!$ZN_R(B0"\`(FD`$$?I`.8@1"`#8`(6V%'(__P6"
- XM_``@($H@`F`"%MA1R/_\0ALI2P!V($0@`V`"%MA1R/_\0A-%Z0!L*4H`&D7ZY
- XM_Q8B_````#DF">2+(M)"DD7Z`38@/````-T2VE'(__Q*K`"(9P``&D'L`(8B5
- XM""0\```#[2QL`:A.KO_B*4``<BQX``1.KO]\(BP`D"0L`)0H+`",+&P!J$ZN/
- XM_W8F3DJ`9@``("1?(FH`$"(L`%9.KO^F($HL>``$3J[_''!H8```)B1`(E]%.
- XMZO^D0>H`2D'H``0@*``$(4D`!"*((T``!"!`((EP`"QX``1.KO]V(DLL>``$A
- XM3J[^8DS??WY.=2EK`#H`)@:L````@``F80`!0$7Z`/`I2@`:80`!3"E``%XO5
- XM`"1`("H`)&<2+&P!J"!`(B@``"E!`%9.KO^"(BH`(&<:)#P```/M3J[_XBE`V
- XM`&YG"N6(($`G:``(`*0@;`!>+PA(;``B(&@`)"EH``0`=DZZ`0A.N0``!"!P!
- XM`&```(0````Y`````"`/2.=^_BI`+'@`!$GY`````"E/`&)A``"ND\DL>``$X
- XM3J[^VB9`*6L`.@`F!JP```"``"8@:P"`T<C1R")H``S3R=/)*5$`'B%1``PB)
- XM+`!6+&P!J$ZN_X)(>@"$3KD```0@6$\B+``>+&P!J$ZN_V0B+`!63J[_IG``9
- XM("P`3F<$($!.D$ZY```-CBQX``0B;`&H3J[^8DZY```88DJL`%YG&B(L`&YG9
- XM!$ZN_]PL>``$3J[_?")L`%Y.KOZ&+FP`8DS??WY.=4/L`'IP`$ZN_=@I0`&H)
- XM9P``!$YU<&1@G$'K`%Q.KOZ`0>L`7$ZN_HQ.=0``3OD``!A@<&$```/L````0
- XM`P````$````D```"/`````X````%`````@```L8```*T```"C````AP```,B*
- XM`````````_(```/J````:`````````````````````$````!````YD[Y````Y
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM````9&]S+FQI8G)A<GD`*@`````!```/H````9`````4```````@("`@("`@(
- XM("`H*"@H*"`@("`@("`@("`@("`@("`@($@0$!`0$!`0$!`0$!`0$!"$A(2$0
- XMA(2$A(2$$!`0$!`0$(&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$!$!`0$!`0"
- XM@H*"@H*"`@("`@("`@("`@("`@("`@("`@(0$!`0("`@("`@("`@("@H*"@H\
- XM("`@("`@("`@("`@("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00P
- XM$!`0$!`0@8&!@8&!`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("H
- XM`@("`@("`@("`@("`@("`@("`A`0$!`@```````#[`````$````"````D```(
- XM``````/R```#Z0``!]=.5?_L2.<A,B9()$DP*@`&2D!J!B`+8``!<"M+__Q"S
- XMK?_X2JW__&<``5Y^_W`"L&H`!F8,<`$U0``&?@-@``#*(&W__!`H``1R`;`!<
- XM9PAT`K`"9@``L+`!9A0R*``&-"H`!+1!9@@(*``&``EF4C(J``9T`;)"9G15N
- XM`&9P""@`!P`(9V@,:`#_``9F8")J`!)*:0!&9A`P*``*2D!J"`@J``(`&68:;
- XM,"D`1K!J`!9F/#`H``I*0&\T""H``P`99RQ*K?_X9@0F4&`((E`L;?_X+(E*8
- XM:@`&9@IP`35```9^!6`F<``U0``&?@1@'%-!9QA*K?_X9@0F4&`&(FW_^"*0]
- XM?@!@!"M(__AP_[Z`9VP@:@`.+'@`!$ZN_HPK0/_T2H!F&`QJ`&0`"&X0<"PB6
- XM/``!``%.KO\Z*T#_]$J`9SPB!R!`,4$`%$J!9P9T!+Z"9AI#Z``6+TD`%")M9
- XM__PL;P`4=`0LV5'*__P\D2!J``HB;?_T+'@`!$ZN_I(@;?_\*U#__&``_IX@N
- XM"TS?3(1.74YU3F5T2V5Y<R!)20``FS%M3F5T2V5Y<R`R+C";,&T@8GD@1&]U0
- XM9R!786QK97(*0V]P>7)I9VAT(*D@,3DY,"!4:&4@4V]F='=A<F4@1&ES=&ELA
- XM;&5R>0HR,S4@5')I;&QI;F=H86T@3&XL($-A<GD@3D,@,C<U,3,@55-!"D)":
- XM4SHH.3$Y*3,X,BTX,C8U"@``0V%N)W0@0W)E871E4&]R=`H`3F5T2V5Y<R`R/
- XM+C``55-!1T4Z($YE=$ME>7,@6S!X:V5Y72!;1GQ372!;3'Q2?%==(%M170H`>
- XM("`@6S!X:V5Y72`@+2!205<@:V5Y(&-O9&4@9F]R(&AO=&ME>0H``"`@(%M&*
- XM?%-=("`@("T@1D%35"!O<B!334]/5$@@;6]D90H``"`@(%M,?%)\5UT@("T@#
- XM36]U<V4@8W5R<V]R(&5X:71S($Q%1E0L(%))1TA4(&]R(%=205!S"@``("`@A
- XM6U%U:71=("`@+2!497)M:6YA=&4@3F5T2V5Y<PH``$YO(&UE;6]R>0H``$YE1
- XM=&ME>7,@;F]T(&EN<W1A;&QE9`H``$YE=$ME>7,@<F5M;W9E9`H``%!A<F%M;
- XM971E<G,@;6]D:69I960@;VX@97AI<W1I;F<@3F5T2V5Y<R!C;VUM86YD"@``X
- XM57-E("=.971+97ES(%%5250G('1O(')E;6]V90I);G-T86QL:6YG+"!P;&5A_
- XM<V4@=V%I="XN+@H``&EN='5I=&EO;BYL:6)R87)Y`&=R87!H:6-S+FQI8G)A0
- XM<GD``&EN<'5T+F1E=FEC90``0V%N)W0@:6YI=&EA;&EZ92`M(&-H96-K($1.5
- XM150@8V]N;F5C=&EO;@H`3F5T2V5Y<R!I;G-T86QL960*``!.5?XX2.<W$B9O&
- XM`>R1R'X`?`(K2/Y$*TC^2"M(__0K2/_\2JP`<F<8<$'0@"(L`')!^OU*)`@F`
- XM`"QL`:A.KO_0<"%R`$'M_[P0P5'(__R3R2QX``1.KO[:*T#_O#M\`!/_P#M\;
- XM``'_PD*G0J=.N@D"4$\K0/_*2H!F(DJL`')G``=H<!$B+`!R0?K]=B0()@`LW
- XM;`&H3J[_T&``!TY#^OUT+'@`!$ZN_GHK0/_X(`MG``&`<!,K0/X\2A-G``%TU
- XM$!-R(+`!9PA*`&<$4HM@\'`@L!-F!%*+8/9P`!`3<EI=06L``+RP>Q`(9O1.V
- XM^Q`$`'=@``"B`%=@``"<`'-@``"0`%-@``"*`')@``!Z`%)@``!T`'%@``!HF
- XM`%%@``!B`&Q@``!2`$Q@``!,`&9@``!``$9@```Z`#!@```.``I@`/]X``!@N
- XM`/]R<'BP*P`!9@#_:$'K``)(;?X\+PA.NAF"4$\@+?X\.T#_P&``_TQ\`&``@
- XM_T8[?``$_]1@`/\\?@%@`/\V.WP`"/_48`#_+'P!8`#_)CM\``S_U&``_QQ*\
- XMK`!R9Q9P*2(L`')!^OQR)`@F`"QL`:A.KO_02JP`<F<6<"8B+`!R0?K\@"0(9
- XM)@`L;`&H3J[_T$JL`')G%G`B(BP`<D'Z_(PD""8`+&P!J$ZN_]!*K`!R9Q9P?
- XM-B(L`')!^OR4)`@F`"QL`:A.KO_02JP`<F<`!=1P("(L`')!^ORN)`@F`"QLF
- XM`:A.KO_08``%NG`L(CP``0`!+'@`!$ZN_SHK0/^T2H!F*$JL`')G``6:<@HO[
- XM00`<(BP`<D'Z_)(D""8O`!PL;`&H3J[_T&``!7I*AV<``)A*K?_X9B)*K`!R<
- XM9P`%9G`6(BP`<D'Z_&XD""8`+&P!J$ZN_]!@``5,(&W_M#%\``$`%!%\``4`@
- XM""%M_\H`#B!M__@B;?^T+'@`!$ZN_I(@;?_*+'@`!$ZN_HQ*@&8*(&W_RDZNW
- XM_H!@YB!M_\HL>``$3J[^C$JL`')G``3X<!`B+`!R0?K\&"0()@`L;`&H3J[_P
- XMT&``!-Y*K?_X9P``A"!M_[0Q?``"`!01?``%``@A;?_*``XP+?_`$4``&C`M1
- XM_]010``;,48`'"!M__@B;?^T+'@`!$ZN_I(@;?_*+'@`!$ZN_HQ*@&8*(&W_6
- XMRDZN_H!@YB!M_\HL>``$3J[^C$JL`')G``1N<#`B+`!R0?K[H"0()@`L;`&H8
- XM3J[_T&``!%0B;?^T<"PL>``$3J[_+D*M_[1*K`!R9Q9P."(L`')!^ON@)`@F)
- XM`"QL`:A.KO_0,"W_U&8&.WP`#/_4<`*\0&8"?`!"ITAZ^C9.N@604$\K0/_&7
- XM2H!G``",0J="ITZZ!7Q03RM`__Q*@&=X2'@``DAM_[QA``3V4$]*@&9F2'@`(
- XM,"\M__Q.N@7N4$\K0/_T2H!G4$/Z^V9P`"QX``1.KOW8*T#_SDJ`9SI#^OMB$
- XM<`!.KOW8*T#^2$J`9RAP#"(\``$``TZN_SHK0/Y$2H!G%$'Z^TYP`")M__1RX
- XM`$ZN_D1*@&<B2JP`<F<``VIP*2(L`')!^OLZ)`@F`"QL`:A.KO_08``#4$JL=
- XM`')G%G`2(BP`<D'Z^T0D""8`+&P!J$ZN_]!*K`!R9PPB+`!R+&P!J$ZN_]Q"^
- XMK`!R(&W_SB)M_D0RO/X`,WS_```"*TC^3`QH`"$`%&4:0>W^4"`\```!6G(!P
- XMD\DL;?Y,3J[^5DJ`9@@[?`)__])@"C`M_EQ30#M`_])![?^\*TC_[$'Z]L`KS
- XM2/_P&WP`-/_G(&W_]#%\``D`'$'M_]XB;?_T(T@`*"QX``1.KOXX,"W_PFT`_
- XM`IAP`"!M_\80*``/<@$D`>&B`$(0`"`"+'@`!$ZN_L((```,9@`"<B!M_\8L"
- XM>``$3J[^C"M`_[A*@&>^<@$@0+)H`!1F"B)`3J[^AF```DIR`K)H`!1F+G0`\
- XM%"@`&CM"_\!**``;9PIT`!0H`!L[0O_4,B@`''0"LD)G`BP!(D!.KOZ&8*)RW
- XM!+)H`!1F2'("LB@`&F8*,BW_U#%!`!Q@##(M_]0`00`!,4$`'!%\``0`&B)M@
- XM_DPQ:0!$`"(Q:0!&`"!"IR\M_D0O+?Y(3KH-BD_O``Q@0G`%L&@`%&8Z2'@`_
- XM`2\M_D0O+?Y(3KH-;$_O``QP!"!M_[@10``:,"W_U`!```(Q0``<(FW^3#%IA
- XM`$0`(C%I`$8`($*M_[!*1F9P<`(@;?^XL"@`&F9D#&@`_P`<9EP@;?_&+'@`C
- XM!$ZN_HPK0/^P2H!G2"!`2F@`%&9`<@*R*``:9C@,:`#_`!QF,`@H``<`'F<HX
- XM(FW_N#(I`"#3:``@,"D`(M%H`"(@;?_*3J[^DBMM_[#_N$*M_[!@I"!M_[C0(
- XM_``62'@`%B\(+RW_VDZZ"!1/[P`,<A:P@68`_DH@;?_*(FW_N"QX``1.KOZ2Y
- XM(&W_N-#\`!9(>``6+P@O+?_:3KH&$D_O``QR%K"!9@``H"!M_[C0_``62'@`W
- XM%B\(+RW_VDZZ!?!/[P`,<A:P@6?@<``L;?Y,3J[^8BH`(&W_N#UH`"(`1$IHC
- XM`"!F"C`M_])(P%.`8`)P`3U``$8@14ZN_EP[?``"_\(@;?_&+'@`!$ZN_HPK/
- XM0/^X2H!F""!M_\9.KOZ`2JW_N&?><`,@;?^XL&@`%&;22'@``2\M_D0O+?Y(*
- XM3KH+X$_O``Q@`/VH2JW_L&<`_:`K;?^P_[A"K?^P8`#^^DJM_\YG#")M_\XL?
- XM>``$3J[^8DJM_DAG-$JM_D1G(DAX``$O+?Y$+RW^2$ZZ"Y1/[P`,(FW^1'`,Q
- XM+'@`!$ZN_RXB;?Y(+'@`!$ZN_F)(;?^\80`!!EA/2JW_]&<T(&W_]$JH`!1G;
- XM(#%\``H`'$/M_]XA20`H(D@L>``$3J[^.")M__1.KOX^+RW_]$ZZ`=Q83TJMB
- XM__QG"B\M__Q.N@%<6$]*K?_&9R@@;?_&+'@`!$ZN_HPK0/^X2H!G"B)`<"Q.#
- XMKO\N8.(O+?_&3KH!+EA/2JW_RF<H(&W_RBQX``1.KOZ,*T#_N$J`9PHB0'`L*
- XM3J[_+F#B+RW_RDZZ`0!83TJL`')G#"(L`'(L;`&H3J[_W'``3-]([$Y=3G5.^
- XM50``+PLF;P`,2JL`&F<$<`%@)G`!)T``&G!_+P`O`$AX)19"ITZZ`TI/[P`0G
- XM)T``'F8$<`%@`G``)E].74YU+PLF;P`(2JL`&F8$<`%@&D*K`!I*JP`>9PHO:
- XM*P`>3KH'XEA/0JL`'G``)E].=4YU2.<#,B9O`!@N+P`<</\L>``$3J[^MBP`D
- XM#`8`_V8$<`!@2'`B(CP``0`!3J[_.B1`(`IF#'``$`9.KOZP<`!@*B5+``H@^
- XM!Q5```D5?``$``A"*@`.%48`#Y/)3J[^VB5``!`B2DZN_IX@"DS?3,!.=4CGB
- XM`!(F;P`,(DLL>``$3J[^F'``$"L`#TZN_K`B2W`B3J[_+DS?2`!.=4Y5__Q("
- XMYP$2)F\`&"XO`!P@!R(\``$``2QX``1.KO\Z*T#__$J`9Q8@0!%\``4`"$(H5
- XM``DB!S%!`!(A2P`.3-](@$Y=3G5(YP`2)F\`#!=\`/\`"#!\__\G2``4)T@`I
- XM&'``,"L`$B)++'@`!$ZN_RY,WT@`3G5.5?_X2.<!`CXO`!I"K?_\<!!R`2QX]
- XM``1.KO\Z<@`R!R\!2'H`:B\`*T#_^$ZZ#S1/[P`,+'@`!$ZN_WPB;?_X3J[^%
- XM>DJ`9A1"IR\M__A.NOZ@4$\K0/_\2H!F#B)M__AP$"QX``1.KO\N+'@`!$ZN>
- XM_W8@+?_\3-]`@$Y=3G5$3D54+E!/4E0N6%A86%@`1$Y%5"Y03U)4+B5L9``P+
- XM`$1.150N54Y)5"X``"5S)7,``$CG`#(F;P`0)&L`"B`+9RPL>``$3J[_?"\+M
- XM80``NEA/2H!F]"\+3KK^B%A/+'@`!$ZN_W8B2G`03J[_+DS?3`!.=4Y5__A(?
- XMYS`RE<H@"F8^(&T`""QX``1.KOZ,)D`@2R`(9RHP*P`<#$``(68.0J<O"V$`?
- XM!NQ03R1`8`87?``!`!\B2RQX``1.KOZ&8+X@;0`(T/P`&")M``@B:0`4L\AG2
- XM('``(&T`"!`H``]R`20!X:)V`!8`YZ$@`BQX``1.KO[.(`IG!"!*8`*1R"`(/
- XM3-],#$Y=3G5.5?_\2.<P$B9O`!P@2RQX``1.KOZ,*T#__$J`9PX@0!%\``$`=
- XM'R)`3J[^AD'K`!@B:P`4L\AG&'``$"L`#W(!)`'AHG8`%@#GH2`"3J[^SDJMJ
- XM__Q6P$0`2(!(P$S?2`Q.74YU3E4``$Y=3G5.5?_,2.<'$B9O`%`^+P!6'"\`,
- XM6QHO`%\@"V8$1_K^C"\+2&W_T&$`!?903RM`_\QR?KH!8P(J`0P%`(%D`GJ!`
- XMO`%C`BP!#`8`@60"?($@0$JH`")G7#M\`"#_['(`,@<K0?_H*T#__"M`_]X;%
- XM1O_9<@`2!2M!_]H@:``B0^W_T"QX``1.KOZ22&W_T&$`!-)83Q`M_^]*`&88>
- XM("W_Z"!M_\PQ0``T+PAA``9(("W_S&`*+RW_S&$`!A9P`$SM2.#_N$Y=3G5.!
- XM5?_T2.<W,B9O`#0N+P`\?`!**P`V9P9P_V```41*AV<``1)!ZP`F+'@`!$ZNK
- XM_OXD0"!*(`AF$"!+3J[^C"1`($H@"&<``.YP![`J``AF+DJK`#QG!%.K`#Q*Q
- XMJ@`D9Q`B:@`H("H`)"QX``1.KO\N(DIP,"QX``1.KO\N8*`P*@`<#$``)&<B$
- XM#$``(V<(#$``(F8``(P7?``!`#8B2BQX``1.KOZ&8`#_=B`J`"`B*@`DDH`J'
- XM`;J';BH@:@`HT<`@!2)M``Q@`A+84X!D^IZ%W(7;K0`,(DHL>``$3J[^AF``F
- XM_SP@:@`HT<`@!R)M``Q@`A+84X!D^MR'WZH`('X`+'@`!$ZN_WP5?``%``A!%
- XMZP`4(DI.KO\03J[_=F``_P`5?``!`!\B2BQX``1.KOZ&8`#^["\+80`$]%A//
- XM2BL`-F<<<``0*P`/<@$D`>&B=@`6`.>A(`(L>``$3J[^SB`&3-],[$Y=3G5(H
- XMYP<R)F\`'"1O`"`N+P`D?`!**P`V9P1P_V`P2H=G*B!++'@`!$ZN_H`O!R\*T
- XM+PMA`/YF3^\`#"H`W(5*A6L*U<6>A4HK`#9GTB`&3-],X$YU2.<!$"9O``PN(
- XM+P`0)T<`.$S?"(!.=4Y5_\A(YP,R)F\`5"1O`%@N+P!<+`=*JP`X9WI"IR\+:
- XM80`"[%!/2H!K:'`P(CP``0`!+'@`!$ZN_SH@0#%\`"0`''(`,BL`-"%!`!@A3
- XM2P`L(4L`#BM`_\P@!W(!3J[_.B!M_\PA0``H(4<`)"`'(DHL:``H8`(<V5.`<
- XM9/H@:P`B(FW_S"QX``1.KOZ24JL`/&!&?/]@0CM\`"3_['``,"L`-"M`_^@K7
- XM2__\*TO_WBM*__@K1__T(&L`(D/M_]`L>``$3J[^DDAM_]!A``'^6$]*+?_OZ
- XM9P)\_R\+80`#@"`&3.U,P/^T3EU.=4Y5_]!(YP`2)F\`0#M\`"/_['``,"L`F
- XM-"M`_^@K2__\*TO_WB!K`")#[?_0+'@`!$ZN_I)(;?_080`!IBZ+80`#,DSM^
- XM2`#_R$Y=3G5.5?_02.<'$B9O`$P>+P!3/"\`5AHO`%L[?``F_^QP`#`K`#0K/
- XM0/_H*TO__"M+_]YP`#`&2$!"0'(`$@7A@8"!<@`2!X"!*T#_^"!K`")#[?_0A
- XM+'@`!$ZN_I)(;?_080`!-"Z+80`"P$SM2.#_O$Y=3G5.5?^<2.<`$B9O`'0@<
- XM"V8$1_KZ6B\+2'KZ5DAZ^EY(;?^E3KH)#D_O`!!#[?^E+'@`!$ZN_GHK0/^<L
- XM9T)"IT*G3KKX?CM\`"7_[$*M_^A"K?_\*T#_WBM`_Z`@;?^<0^W_T"QX``1.O
- XMKOZ22&W_T&$``+(NK?^@3KKXN$_O``Q*K?^<5L!$`$B`2,!,WT@`3EU.=4Y51
- XM_\Q(YP`2)F\`1#M\`"+_['``,"L`-"M`_^@K2__\*TO_WB!K`")#[?_0+'@`.
- XM!$ZN_I)2JP`\0JL`.$AM_]`O"V$``)!03T'K`"8L>``$3J[^_BM`_\Q*@&8.B
- XM($M.KOZ,*T#_S$J`9Q8@;?_,$7P``0`?(D@L>``$3J[^AF#(+PMA``%Z3.U($
- XM`/_$3EU.=4CG(!(F;P`0<`>P*P`(9QP@:P`.<``0*``/<@$D`>&B(`(L>``$)
- XM3J[^PF#<+'@`!$ZN_WPB2TZN_P1.KO]V3-](!$YU3E7_^DCG`3(F;P`>?@`@]
- XM*P`\L*L`.&]6($LL>``$3J[^@"!+3J[^C"1`<`>P*@`(9C!*1V8&?@`>*@`?R
- XMM>T`#&<:2JH`)&<,(FH`*"`J`"1.KO\N(DIP,$ZN_RY3JP`\8*Q!ZP`F(DI.,
- XMKO\*8*`@!TC`3-],@$Y=3G5.5?_02.<`,B9O`$0D;P!(<$`B/``!``$L>``$*
- XM3J[_.B!`$7P`!``(*T#__'#_3J[^MB!M__P10``/D\E.KO[:(&W__"%``!!#'
- XMZ``4+PE.N@A((&W__-#\`"8NB$ZZ"#I83R`K`!@@;?_\,4``-"=(`"P@"F<F/
- XM+PI(>O@42'KX'$AM_]%.N@;,3^\`$$/M_]$L>``$3J[^>B=```X@;?_\(6L`O
- XM#@`B(`A,WTP`3EU.=4CG`!(F;P`,<``0*P`/+'@`!$ZN_K`B2W!`3J[_+DS?<
- XM2`!.=4CG,!(F;P`40>L`&")K`!2SR&8,0>L`*B)K`":SR&<<<``0*P`/<@$D/
- XM`>&B=@`6`.>A(`(L>``$3J[^SDS?2`Q.=0``3E7__$CG(3`F;P`<)&\`("XO+
- XM`"0K:P`F__Q*AV<L2JP`F&=L("P`F"(`0D%(02!M__PQ00`*)#P``/__P((Q'
- XM0``.D\DI20"88$8@;?_\#&@!(``(9CH,:`$B``QF,DJL`)AF%G``,"@`"DA`^
- XM0D!R`#(H``Z`@2E``)@@"D)`2$`Q0``*(`H"@```__\Q0``.3-\,A$Y=3G5.M
- XM=4YU3E7_Q$CG)S`F;P!<)&\`8'X`?`!Z`'``&WP`(/_[<@`K0?_V=/\K0O_R!
- XM0>W_T!M`__$;0/_\*T'_Y"M!_^@K2/_,2A-G0G``$!-R&%U!:SBP>Q`(9O9./
- XM^Q`$`"-@```@`"!@```6`"M@```,`"U@```"?@%@#GP!8`IZ`6`&&WP``?_\V
- XM4HM@NA`3<C"P`68&4HL;0?_[<"JP$V80(%)#Z``$)(DK4/_V4HM@#DAM__8O!
- XM"TZZ!(103]?`$!-R+K`!9B92BW`JL!-F$"!20^@`!"2)*U#_\E*+8`Y(;?_RL
- XM+PM.N@164$_7P!`3<FRP`68*&WP``?_Q4HM@"')HL`%F`E*+$!MR`!(`&T#_:
- XM\'`P74!K``)4LGL`"&;T3OL`!`!C8``"*@!S8``!Z`!88``!?@!X8``!>`!PM
- XM8``!7@!O8``!#`!U8```X@!D8````DHM__%G#"!20^@`!"2)(!!@"B!20^@`W
- XM!"2)(!`K0/_L;`IR`42M_^PK0?_H2JW_Z&<$<"U@"DH&9P1P*V`"<"`;0/_01
- XM<``0!B(M_^B"@'``$`6"@&<(4JW_S%*M_^0O+?_L+RW_S$ZZ`N903RM`_\@@O
- XM+?_R2H!J!G(!*T'_\B`M_\@B+?_RDH!([0`"_\1O+B!M_\PB2-/!8`(2V%.`:
- XM9/IP`!`M__LB+?_$(&W_S&`"$,!3@63Z("W_\BM`_\C1K?_D0>W_T"M(_\Q*I
- XM!V<``5`;?``@__M@``%&2BW_\6<,(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`"
- XM_^Q@`/]B2BW_\6<,(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q*+?_\9Q(@-
- XM;?_,$/P`,'(!*T'_Y"M(_\PO`"\M_\Q.N@)`4$\K0/_(8`#_*!M\`##_^R`MZ
- XM__)*@&H&<`@K0/_R2BW_\6<,(%)#Z``$)(D@$&`*(%)#Z``$)(D@$"M`_^Q*?
- XM+?_\9Q8@;?_,$/P`,!#\`'AR`BM!_^0K2/_,+P`O+?_,3KH"'%!/*T#_R'!83
- XML"W_\&8`_KY(;?_03KH!4%A/8`#^L"!20^@`!"2)(E`K2?_,9@A!^@#<*TC_V
- XMS"!M_\Q*&&;\4XB1[?_,*TC_Y"`M__)*@&LJL<!O)BM`_^1@('`!*T#_Y"!2$
- XM0^@`!"2)(!`;0/_00BW_T6`&<`!@``",("W_Y"(M__:R@&P(=``K0O_V8`21<
- XMK?_V2@=G-E.M_^1M&'``(&W_S!`8+P`K2/_,(&T`$$Z06$]@XE.M__9M2'``3
- XM$"W_^R\`(&T`$$Z06$]@Z%.M__9M$G``$"W_^R\`(&T`$$Z06$]@Z%.M_^1M4
- XM&'``(&W_S!`8+P`K2/_,(&T`$$Z06$]@XB`+3-\,Y$Y=3G4``$Y5__9(YP$P%
- XM)F\`'B1O`"(K;0`0__8>&DH'9S1P);X`9B*P$F8$4HI@&B\+2&W_]B\*80#[_
- XMS$_O``PK0/_Z9P0D0<``0!R\`3I-83V#&3-\,@$Y=3G5(YR`P)F\`$"1+7
- XM2A)G)'``$!)![`"="#```0@`9PIR`!(`=""2@F`$<@`2`!2!4HI@V"`+3-\,4
- XM!$YU``````````!P82`O``@@;P`$3E7_]")/<@I.N@%<!D$`,!+!2H!F\"`)]
- XM$.&_R6;Z0A"0CTY=3G4``"`O``@@;P`$3E7_]")/(@`"00`'!D$`,!+!YHAFS
- XM\"`)$.&_R6;Z0A"0CTY=3G4``#`Q,C,T-38W.#EA8F-D968@+P`((&\`!$/O/
- XM``0R``)!``\2^Q#<Z(AF\B`)(@]8@1#ALHEF^D(0D(%.=2!O``0B2'(`<``O\
- XM`@P0`"MG!@P0`"UF`E)($!@$```P;1(,```);@PD`>6!TH+2@=*`8.8,$0`M_
- XM9@)$@20?(`A3@"!O``@@@9")3G4O!RXO``A2K`&D(`<@;`&@$,`I2`&@+A]..
- XM=4Y5``!(YP`P)F\`$"1O`!1"K`&D*4L!H$AM`!`O"DAZ_\9.NOX^(&P!H$(0S
- XM("P!I$SM#`#_^$Y=3G5*@&H``!Y$@$J!:@``#$2!80``($2!3G5A```81(!$!
- XM@4YU2H%J```,1(%A```&1(!.=2\"2$$T`68``")(0$A!2$(T`&<```:$P3`"B
- XM2$`T`(3!,`)(0C(")!].=2\#=A`,00"`9```!N&944,,00@`9```!NF964,,=
- XM02``9```!N6954-*06L```;CF5-#-`#FJ$A"0D+FJDA#@,$V`#`"-`-(0<3!(
- XMD()D```(4T/0@63^<@`R`TA#Y[A(0,%!)A\D'TYU(&\`!")(<@!P`!`8!```X
- XM,&TH#```"6\<!```$6T<#```!6\,!```(&T0#```!6X*!@``"NF!TH!@T"`(=
- XD4X`@;P`(((&0B4YU(&\`!""(6)!"J``$(4@`"$YU``````/RA
- X``
- Xend
- Xsize 9396
- END_OF_FILE
- if test 13190 -ne `wc -c <'netkeys.uu'`; then
- echo shar: \"'netkeys.uu'\" unpacked with wrong size!
- fi
- # end of 'netkeys.uu'
- fi
- echo shar: End of archive 2 \(of 2\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked both archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
- Mail comments to the moderator at <amiga-request@cs.odu.edu>.
- Post requests for sources, and general discussion to comp.sys.amiga.
-